﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ch04
{
    class Class10
    {
        static void Main(string[] args)
        {
            //定义变量保存用户输入的日期
            string date;
            //定义变量保存从日期中获取到的年月日
            int year, month, day;
            //定义变量保存日期是否输入正确，true代表正确，false代表错误
            bool flag;

            do
            {
                flag = true;   //默认为正确的

                Console.Write("请输入日期：");
                date = Console.ReadLine();
                string[] arr = date.Split('-','/','.');
                year = int.Parse(arr[0]);
                month = int.Parse(arr[1]);
                day = int.Parse(arr[2]);

               
                if (year < 1 || year > 9999)
                {
                    flag = false;   //年份错误，则修改标识
                    continue;
                }

                if (month < 1 || month > 12)
                {
                    flag = false;   //月份错误，则修改标识
                    continue;
                }
                
                int max = 0;
                switch (month)
                {
                    case 2: max = year%4==0&&year%100!=0||year%400==0?29:28; break;
                    case 4:
                    case 6:
                    case 9:
                    case 11: max = 30; break;
                    default: max = 31; break;
                }

                if (day < 1 || day > max)
                {
                    flag = false;   //天数错误，则修改标识
                }

            } while (!flag);
            

            Console.WriteLine(date);
        }
    }
}
